package com.guigu.qingcheng.service;

import com.guigu.qingcheng.pojo.TbOrderItem;
import com.guigu.qingcheng.pojo.dto.CaiFenDinDan;
import com.guigu.qingcheng.pojo.vo.CaiFenVo;
import com.guigu.qingcheng.pojo.vo.CategoryReportVo;
import com.guigu.qingcheng.utils.PageUtil;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;


/**
*
* @author Jiang
* @date 2020/07/31
*/
public interface TbOrderItemService {

    /**
     * 查询近七日销售总额
     */
    Map findTotalSalesonweek(CategoryReportVo categoryReportVo);

    /**
     * 查询今日销售总额
     */
    Map findTotalSales(LocalDate localDate);

    /**
    * 查询所有
    */
    List<TbOrderItem> queryAll();

    /**
    * 分页查询所有
    */
    PageUtil<TbOrderItem> findListAll(Integer pageNum, Integer pageSize);


    /**
    * 按条件分页查询
    */
    PageUtil<TbOrderItem> pageQueryByAll(Integer pageNum, Integer pageSize, TbOrderItem tbOrderItem);


    /**
    * 添加
    */
    boolean saveTbOrderItem(TbOrderItem tbOrderItem);


    /**
    * 修改
    */
    boolean updateTbOrderItem(TbOrderItem tbOrderItem);

    /**
    * 删除
    */
    boolean deleteById(Integer id);


    /**
    * 根据id查询
    */
    TbOrderItem findById(Integer id);

    /**
     * 拆分订单
     * @param caiFenVos
     */
    void caiFen(List<CaiFenVo> caiFenVos);

    /**
     * 根据订单id获取详细商品信息
     * @param orderId
     * @return
     */
    List<CaiFenDinDan> queryByOrderIdGoods(String orderId);

    /**
     * 添加商品到订单
     * @param tbOrderItem
     */
    void addGoodsOrder(TbOrderItem tbOrderItem);

    /**
     * 根据订单获取订单明细
     * @param orderId
     * @return
     */
    List<TbOrderItem> getOrderItem(String orderId);

    //热卖商品
    List<Map> findHost();
    //特价商品
    List<Map> pricelower();
    //新品排序
    List<Map> Commoditieseqs();
}
